package model

// Task 任务表（绑定关系模型，继承其结构）
type Task struct {
	BaseModel          // 继承公共字段（包含ID、创建时间等，已在BaseModel中定义json标签）
	TaskCode    string `gorm:"column:TASK_CODE;unique;not null;size:50;comment:任务唯一编码（如task_001）" json:"task_code"`
	TaskName    string `gorm:"column:TASK_NAME;not null;size:100;comment:任务名称" json:"task_name"`
	ModelID     int    `gorm:"column:MODEL_ID;not null;index;comment:关联关系模型ID（外键）" json:"model_id"`
	Status      string `gorm:"column:STATUS;not null;size:20;default:'draft';comment:任务状态（draft/processing/completed/failed）" json:"status"`
	Description string `gorm:"column:DESCRIPTION;size:500;comment:任务描述" json:"description,omitempty"`
	// 外键关联：绑定的关系模型（序列化时忽略，避免循环引用）
	RelationModel RelationModel `gorm:"foreignKey:ModelID;references:ID" json:"-"`
}

func (Task) TableName() string {
	return "TASKS"
}
